設定 SNMP 連線的加密

第三方應用程式可以存取透過 SNMP 傳送的資料或將該資料替換為自己的資料。為確保透過 SNMP 安全傳輸資料,建議設定 SNMP 連線加密。

若要配置 SNMP 連線加密:

  1. 新增以下行到 /etc/snmp/snmpd.conf 檔案:

    view systemview included .1

  2. 獲取一個 EngineID,這是處理 SNMP Trap 所必需的。為此,請在叢集中的每台伺服器上執行以下命令:

    snmpget -v2c -c<community name> 127.0.0.1 SNMP-FRAMEWORK-MIB::snmpEngineID.0 2>/dev/null | sed -ne 's/ //g; s/.*:/0x/p'

    指定您組織中使用的社群名稱。如有必要,建立一個新社群。出於資料傳輸安全的目的,不建議使用預設的“public”社群。

    在執行命令之前,請確保 snmpd 服務正在執行。

  3. 在叢集中的每個伺服器上設定 snmpd 服務。若要執行此操作:
    1. 停止 snmpd 服務。為此,執行以下指令:

      systemctl stop snmpd

    2. 建立一個新使用者。為此,執行以下指令:

      net-snmp-create-v3-user -ro -a SHA -A <password> -x <password> -X AES <username>

    3. 將以下字串新增到 /etc/snmp/snmpd.conf 設定檔中:

      # accept KSMG statistics over unix socket

      master agentx

      agentXSocket unix:/var/run/agentx-master.socket

      agentXPerms 770 770 kluser klusers

      # accept incoming SNMP requests over UDP

      agentAddress udp:127.0.0.1:161

      rouser <username> priv .1.3.6.1

      # comment the following line if you don't need to forward SNMP traps over an SNMPv3 connection

      trapsess -e <EngineID> -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:<IP address>:162

      對於 <IP address>,指示將被 snmptrapd 服務用於接受網路連線的 IP 位址。如果要在伺服器本機儲存 SNMP Trap,請輸入 127.0.0.1

    4. 將以下字串新增到設定檔 /etc/snmp/snmpn。conf:

      mibdirs +/opt/kaspersky/ksmg/share/snmp-mibs/

      mibs all

      如果指定目錄中不存在 snmp.conf 設定檔,請建立該檔案。

    5. 啟動 snmpd 服務。為此,執行以下指令:

      systemctl start snmpd

    6. 檢查 SNMP 連線。為此,請執行以下指令:

      snmpwalk -mALL -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:127.0.0.1:161 .1.3.6.1.4.1.23668

      snmpget -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:127.0.0.1:161 KSMG-PRODUCTINFO-STATISTICS::applicationName.0

  4. 在想要接收 SNMP Trap 的伺服器上設定 snmptrapd 服務。若要執行此操作:
    1. 使用以下命令停止 snmptrapd 服務:

      systemctl stop snmptrapd

    2. 將以下行新增到 /var/lib/net-snmp/snmptrapd.conf 檔案:

      createUser -e <EngineID> <username> SHA "<password>" AES "<password>"

      如果指定目錄中不存在 snmptrapd.conf 設定檔,請建立該檔案。

      snmpd 和 snmptrapd 服務的使用者帳戶憑證(<username><password>)必須相同。

    3. 將以下字串新增到 /etc/snmp/snmptrapd.conf 設定檔:

      snmpTrapdAddr udp:<IP address>:162

      authUser log <username> priv

      disableAuthorization no

      如果指定目錄中不存在 snmptrapd.conf 設定檔,請建立該檔案。

    4. 啟動 snmptrapd 服務。為此,執行以下指令:

      systemctl start snmptrapd

      確保 /var/lib/net-snmp/snmptrapd.conf 檔案中以純文字形式顯示的密碼已替換為混淆的字元序列。為此,您可能需要多次使用 systemctl restart snmptrapd 命令重新啟動 snmptrapd 服務。

    5. 新增 snmptrapd 服務以自動啟動。為此,執行以下指令:

      systemctl enable snmptrapd

    6. 執行以下指令檢查 SNMP 連線:

      snmptrap -e <EngineID> -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:<IP address>:162 0 KSMG-EVENTS-MIB::restartedBinary

      確保以下字串出現在 /var/log/messages 檔案中:

      <date and time> <hostname> snmptrapd[7503]: <date and time> localhost [UDP: [127.0.0.1]:26325->[<IP address>]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00#011SNMPv2-MIB::snmpTrapOID.0 = OID: KSMG-EVENTS-MIB::restartedBinary

    對於 <IP address>,指示將被 snmptrapd 服務用於接受網路連線的 IP 位址。如果要在伺服器本機儲存 SNMP Trap,請輸入 127.0.0.1

SNMP 連線加密現已設定。

頁面頂端